jQuery 对象$(“selector”).serialize()方法的使用
1 表单元素:from 表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。表单用于向服务器传输数据。
- input : type 类型 button checkbox file hidden image password radio reset submit text 。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。默认text类型
- textarea 必须属性 col row 该标签也有 name属性,也可以上传数据
2 select select 元素可创建单选或多选菜单。当提交表单时,浏览器会提交选定的项目,或者收集用逗号分隔的多个选项,将其合成一个单独的参数列表,并且在将 \
属性 | 值 | 描述 | DTD |
---|---|---|---|
disabled | disabled | 规定禁用该下拉列表。 | STF |
multiple | multiple | 规定可选择多个选项。 | STF |
name | name | 规定下拉列表的名称。 | STF |
size | number | 规定下拉列表中可见选项的数目。 | STF |
- option 元素必须位于select元素内部,不能单独的使用,没有name属性
属性 | 值 | 描述 | DTD |
---|---|---|---|
disabled | disabled | 规定此选项应在首次加载时被禁用。 | STF |
label | text | 定义当使用 | STF |
selected | selected | 规定选项(在首次显示在列表中时)表现为选中状态。 | STF |
value | text | 定义送往服务器的选项值。 | STF |
3 首先理解jQuery ajax - serialize() 方法注意:只会将”成功的控件“序列化为字符串 。如果不使用按钮来提交表单,则不对提交按钮的值序列化。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。
什么是”成功的控件”?可以简单理解为 被选中的 表单元素 有name属性的表单元素;**注意name属性不能是js或者jQuery中的关键字,否则无法序列化 ;其实就是用户操作选中的那些控件内容会被序列化;
|
|
|
|
如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。否则无法序列化该元素的值;
序列化的”键值对”是
- 对于input select 元素是 name 属性 的值 和 value 属性的值;如果value属性也有值,那么就提交value属性的值,如果没有value属性,或者value属性值为空字符串,则序列化的结果没有value值,如果value值是一个空的字符串,那么序列化的结果是一个 + 字符。
- 对于textarea 元素是textarea元素的 name属性值 和内容值
4 明白以上的内容,具体到serialize()的用法,是对所有选中的表单元素进行序列化;序列化表单值的作用是将表单中的值拼装成字符串形式的key-value键值对提交给后台服务器程序解析,来获取用户的输入值
- 定义:serialize()方法通过序列化表单值,创建标准的URL编码文本字符串 ,它的操作对象是代表表单元素集合的jQuery 对象.你可以选择一个或多个表单元素(比如input或文本框),或者 form 元素本身。序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中,然后发送到服务器。
- 我们可以单独的获取某个表单元素的序列化的值,$(“input”).serialize(),序列化所有的input元素,\$(“input:password”).serialize(),序列化password ; \$(“form”).serialize() 序列化 form;
|
|
$.param()方法是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化。
|
|
5 如何 解决空字符串转化为 + 号 的问题?